常量
const x = “123”;//常量,定义后不能修改
作用域:var 定义的 i 变量是一个全局变量
let 声明的变量:块作用域
作用域
一、ES5中,callbacks中的return i*2,是对变量的引用,而不是对函数变量值的引用。函数体中是一个变量,而不是一个值。
二、用let声明的变量有块作用域的概念,这个时候的闭包取决于当前的块作用域,会将当前值保存,供后面的闭包使用。
三、es6:{}表示一个新的作用域,{}可以对作用域进行隔离。
es5中要执行立即执行函数((function(){},()),才能对作用域进行隔离。
###箭头函数
ES6箭头函数()=>{ } 替代 ES5中function a(){ }结构
- 箭头函数中this指向—是对象被定义时this的指向
- 普通函数的this指向—指向被调用对象
默认参数
ES5,ES6可变参数的处理 求和例子
ES5利用 Array.prototype.slice.call(arguments) 获得 参数列表
ES6 直接是(扩展运算符 …)+参数名 可直接获取参数列表 f(…a){ }
扩展运算符合并数组 … 代表自己
对象代理
对象代理多用于数据保护。
ES3 this.set中判读if是某个属性不能复制;ES5数据只读;ES6 Proxy对象代理。
1 | let person = new Proxy(Person,{ |